package com.yunji.common.model.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yunji.common.annotation.Excel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.hibernate.validator.constraints.Length;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
/**
 * @Package com.yunji.user.domain
 * FileName:	Member.java
 * Copyright:	Copyright © 2024 云集互联 All Rights Reserved
 * Company:		云集互联
 * @version: 1.0
 * @since: JDK 1.8.0_202
 * Create at:   2024-04-06 23:49:43
 * Description:
 * 客户信息
 * Modification History:
 * Author					Date					Version         Description
 * -------------------------------------------------------------------------------------
 * HuaAo0803@163.com	2024-04-06 23:49:43             1.0						1.0 Version
 */
@TableName("member")
@Data
public class MemberDO implements Serializable {
    private static final long serialVersionUID = -7536736512119356299L;
    /**
     * $column.columnComment
     */
    @TableId(type = IdType.AUTO)
    @Excel(name = "用户ID")
    private Long id;

    /**
     * 帐号启用状态:0-&gt;正常；1-&gt;禁用
     */
    @Excel(name = "帐号启用状态", readConverterExp = "0=正常,1=停用")
    private Long status;

    /**
     * 昵称
     */
    @Excel(name = "昵称")
    @ApiModelProperty("昵称")
    @Length(message = "昵称不能超过{max}个字符 ", max = 15)
    private String name;


    /**
     * 性别：0-&gt;未知；1-&gt;男；2-&gt;女
     */
    @Excel(name = "性别", readConverterExp = "未知=0,女=1,未知=2")
    @ApiModelProperty("性别：0-&gt;未知；1-&gt;男；2-&gt;女")
    private Long gender;

    /**
     * 手机号码
     */
    @Excel(name = "手机号码")
    @ApiModelProperty("手机号码")
    @Length(message = "手机号不能超过{max}个字符", max = 11)
    private String phone;

    private Date createTime;

    /**
     * 生日
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "生日", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty("生日")
    private Date birthday;

    /**
     * 头像
     */
    @Excel(name = "头像")
    @ApiModelProperty("头像")
    private String avatar;

    /**
     * 确定用户唯一标识
     */
    @Excel(name = "确定用户唯一标识")
    @ApiModelProperty("确定用户唯一标识")
    private String unionid;

    /**
     * 用户端openid
     */
    @Excel(name = "用户端openid")
    @ApiModelProperty("用户端openid")
    private String openid;

    private BigDecimal balance;
    /**
     * 累计收益
     */
    @ApiModelProperty("累计收益")
    @Excel(name = "累计收益")
    private BigDecimal earnAmount;

    /**
     * 提现金额
     */
    @ApiModelProperty("提现金额")
    @Excel(name = "提现金额")
    private BigDecimal cashAmount;

    /**
     * 账户余额
     */
    @ApiModelProperty("账户余额")
    @Excel(name = "账户余额")
    private BigDecimal remainAmount;

    /**
     * 冻结金额
     */
    @ApiModelProperty("冻结金额")
    @Excel(name = "冻结金额")
    private BigDecimal frozenAmount;

    @ApiModelProperty("退款金额")
    @Excel(name = "退款金额")
    private BigDecimal refundAmount;

    /**
     * 年龄标签
     */
    @Excel(name = "年龄标签")
    @ApiModelProperty("年龄标签")
    private String ageLabel;

    /**
     * 星座标签
     */
    @Excel(name = "星座标签")
    @ApiModelProperty("星座标签")
    private String constellationLabel;

    /**
     * 职业标签
     */
    @Excel(name = "职业标签")
    @ApiModelProperty("职业标签")
    private String careerLabel;

    /**
     * 社交现状标签
     */
    @Excel(name = "社交现状标签")
    @ApiModelProperty("社交现状标签")
    private String socialLabel;

    // token 映射唯一ID
    @TableField(exist = false)
    private String token;
}
